// ajax({
//   method: "get",
//   data: {},
//   url: "",
//   timeout: 100,
//   success(xhr){},
//   error(code){},
//   beforeSend(){},
//   async: true
// })


function ajax({ method="get", data={}, url, timeout=10000, success, error, beforeSend, async=true }){
  // 初始立即执行请求之前的功能
  beforeSend && beforeSend();
  // 解析数据
  // key=val&key=val
  let str = "";
  for(let i in data){
    str += `${i}=${data[i]}&`;
  }
  str = str.slice(0, -1);
  // 判断是否是get请求，如果是，将数据拼接到url后
  if(method === "get"){
    url += "?" + str;
  }
  // 开启ajax
  const xhr = new XMLHttpRequest;
  xhr.open(method, url, async);
  xhr.timeout = timeout;
  if(method === "get"){
    xhr.send();
  }else{
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(str);
  }
  xhr.onload = function(){
    if(xhr.status === 200){
      success(xhr);
    }else{
      error && error(xhr.status);
    }
  }
  xhr.ontimeout = function(){
    error && error("timeout");
  }
}

